<?php
/**
 *
 * RIPS - PHP脚本漏洞静态源代码分析软件(Johannes Dahse @rub.de)版权所有(C) 2012
 * 您可以根据自由软件基金会发布的GNU通用公共许可证条款重新发布和/或修改它;
 * 许可的版本3，或者(由您选择)任何以后的版本。
 * 这个程序是希望它会有用，但没有任何保证;
 * 甚至没有对适销性或适合特定用途的隐含保证。
 * 有关更多细节，请参阅GNU通用公共许可证。
 * 您应该已经收到一份GNU通用公共许可证的副本，连同本程序;
 * 如果没有，请查看<http://www.gnu.org/licenses/>
 **/

include 'config/general.php';

?>
<html>
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" type="text/css" href="css/rips.css"/>
    <?php

    foreach ($stylesheets as $stylesheet) {
        echo "\t<link type=\"text/css\" href=\"css/$stylesheet.css\" rel=\"";
        if ($stylesheet != $default_stylesheet) echo "alternate ";
        echo "stylesheet\" title=\"$stylesheet\" />\n";
    }
    ?>
    <script src="js/script.js"></script>
    <script src="js/exploit.js"></script>
    <script src="js/hotpatch.js"></script>
    <script src="js/netron.js"></script>
    <title>RIPS 一个用于PHP脚本漏洞的静态源代码分析器</title>
</head>
<body>

<div class="menu">
    <div style="float:left; width:100%;">
        <table width="100%">
            <tr>
                <td width="75%" nowrap>
                    <table class="menutable" width="50%" style="float:left;">
                        <tr>
                            <td nowrap><b>路径 / 文件位置:</b></td>
                            <td colspan="3" nowrap><input type="text" size=80 id="location"
                                                          value="<?php echo BASEDIR; ?>"
                                                          title="enter path to PHP file(s)" placeholder="/var/www/">
                            </td>
                            <td nowrap><input type="checkbox" id="subdirs" value="1"
                                              title="check to scan subdirectories" checked/>subdirs
                            </td>
                        </tr>
                        <tr>
                            <td nowrap>verbosity level:</td>
                            <td nowrap>
                                <select id="verbosity" style="width:100%" title="select verbosity level">
                                    <?php

                                    $verbosities = array(
                                        1 => '1. user tainted only',
                                        2 => '2. file/DB tainted +1',
                                        3 => '3. show secured +1,2',
                                        4 => '4. untainted +1,2,3',
                                        5 => '5. debug mode'
                                    );

                                    foreach ($verbosities as $level => $description) {
                                        echo "<option value=\"$level\">$description</option>\n";
                                    }
                                    ?>
                                </select>
                            </td>
                            <td align="right" nowrap>
                                漏洞类型:
                            </td>
                            <td>
                                <select id="vector" style="width:100%" title="select vulnerability type to scan">
                                    <?php

                                    $vectors = array(
                                        'all' => 'All',
                                        'server' => 'All server-side',
                                        'code' => '- 代码执行',
                                        'exec' => '- 命令执行',
                                        'file_read' => '- 文件读取',
                                        'file_include' => '- 文件加载',
                                        'file_affect' => '- File Manipulation',
                                        'ldap' => '- LDAP Injection',
                                        'unserialize' => '- PHP Object Injection',
                                        'connect' => '- 协议注入',
                                        'ri' => '- Reflection Injection',
                                        'database' => '- SQL Injection',
                                        'xpath' => '- XPath Injection',
                                        'other' => '- 其他',
                                        'client' => 'All client-side',
                                        'xss' => '- XSS',
                                        'httpheader' => '- HTTP Response Splitting',
                                        'fixation' => '- Session Fixation',
                                        //'crypto'		=> 'Crypto hints'
                                    );

                                    foreach ($vectors as $vector => $description) {
                                        echo "<option value=\"$vector\" ";
                                        if ($vector == $default_vector) echo 'selected';
                                        echo ">$description</option>\n";
                                    }
                                    ?>
                                </select>
                            </td>
                            <td><input type="button" value="scan" style="width:100%" class="Button"
                                       onClick="scan(false);" title="开始扫描"/></td>
                        </tr>
                        <tr>
                            <td nowrap>代码样式:</td>
                            <td nowrap>
                                <select name="stylesheet" id="css" onChange="setActiveStyleSheet(this.value);"
                                        style="width:49%" title="select color schema for scan result">
                                    <?php
                                    foreach ($stylesheets as $stylesheet) {
                                        echo "<option value=\"$stylesheet\" ";
                                        if ($stylesheet == $default_stylesheet) echo 'selected';
                                        echo ">$stylesheet</option>\n";
                                    }
                                    ?>
                                </select>
                                <select id="treestyle" style="width:49%"
                                        title="select direction of code flow in scan result">
                                    <option value="1">bottom-up</option>
                                    <option value="2">top-down</option>
                                </select>
                            </td>
                            <td align="right">
                                /regex/:
                            </td>
                            <td>
                                <input type="text" id="search" style="width:100%"/>
                            </td>
                            <td>
                                <input type="button" class="Button" style="width:100%" value="search" onClick="search()"
                                       title="search code by regular expression"/>
                            </td>
                        </tr>
                    </table>
                    <div id="options" style="margin-top:-10px; display:none; text-align:center;">
                        <p class="textcolor">windows</p>
                        <input type="button" class="Button" style="width:50px" value="files"
                               onClick="openWindow(5);eval(document.getElementById('filegraph_code').innerHTML);"
                               title="show list of scanned files"/>
                        <input type="button" class="Button" style="width:80px" value="user input"
                               onClick="openWindow(4)" title="show list of user input"/><br/>
                        <input type="button" class="Button" style="width:50px" value="stats"
                               onClick="document.getElementById('stats').style.display='block';"
                               title="show scan statistics"/>
                        <input type="button" class="Button" style="width:80px" value="functions"
                               onClick="openWindow(3);eval(document.getElementById('functiongraph_code').innerHTML);"
                               title="show list of user-defined functions"/>
                    </div>
                </td>
                <td width="25%" align="center" valign="center" nowrap>
                    <!-- Logo by Gareth Heyes -->
                    <div class="logo"><a id="logo" href="https://www.ripstech.com/latest/" target="_blank"
                                         title="get the latest version"><?php echo VERSION ?></a></div>
                </td>
            </tr>
        </table>
    </div>

    <div style="clear:left;"></div>
</div>
<div class="menushade"></div>

<div class="scanning" id="scanning">扫描中 ...
    <div class="scanned" id="scanned"></div>
</div>

<div id="result">

    <div style="margin-left:30px;color:#000000;font-size:14px">
        <h3>快速入门:</h3>
        <p>定位你的本地PHP源代码<b>路径/文件</b>(例如<em>/var/www/project1/</em>或<em>/var/www/index.php</em>)，
            选择您正在查找的<b>漏洞类型</b>，点击<u>scan</u>!<br/>
            检查<b>subdirs</b>以将所有子目录包含到扫描中。建议只扫描根目录
            项目的目录。文件在子目录将自动扫描RIPS时，包括
            PHP代码。而启用<b>subdirs</b>可以提高扫描结果和包含成功率
            (见结果)。</p>
        <h3>先进:</h3>
        <p>调试错误或通过选择不同的<b>冗长级别</b>来改善您的扫描结果(默认级别推荐1)。<br/>
            扫描完成后，4个新的按钮将出现在右上角。您可以在不同类型之间进行选择
            在<b>stats</b>窗口中点击他们的名字发现的漏洞。你可以点击
            <b>用户输入</b>在右上角获得一个入口点列表，<b>函数</b>为一个列表和图的
            所有用户定义函数或<b>文件</b>为所有扫描文件及其包含的列表和图。所有
            列表被引用到代码查看器中</p>
        <h3>风格:</h3>
        <p>通过选择不同的<b>代码样式来动态地改变语法高亮显示模式</b>。<br/>
            在扫描之前，您可以选择显示代码流的方式:<b>自下而上的</b>或
            自上而下<b> </b> . </p>
        <h3>图标:</h3>
        <ul>
            <li class="userinput"><font color="black"><b>用户输入</b>已在这一行找到。潜在的进入
                    漏洞利用点。</font></li>
            <li class="functioninput"><font color="black">漏洞利用取决于<b>参数</b>
                    传递给这一行中声明的函数。看看扫描结果中的调用。<br/>点击
                    <b>&uArr;</b>或<b>&dArr;</b>跳转到该函数的下一个声明或调用</font></li>
            <li class="validated"><font color="black">用户实现的<b> secure </b>在这一行中检测到。
                    这样可以防止被利用。</font></li>
        </ul>

        <h3>选项:</h3>
        <ul>
            <li>
                <div class="fileico"></div>&nbsp;单击文件图标打开<b>代码查看器</b>查看
                原始代码。一个新窗口将被打开，所有相关的行将被高亮显示。<br/>
                通过鼠标悬停暂时突出显示变量，或者通过单击变量持久地突出显示变量。跳进
                通过单击调用实现用户定义函数的代码。点击代码底部<u>return</u>
                观众往后跳。这也适用于嵌套函数调用。
            </li>
            <li>
                <div class="minusico"></div>&nbsp;点击最小化图标到<b>隐藏</b>一个特定的代码跟踪。你可能
                稍后再次单击图标显示它。
            </li>
            <li>
                <div class="exploit"></div>&nbsp;点击目标图标，打开<b>Exploit Creator</b>。一个新窗口
                将打开，您可以在其中输入利用细节并创建PHP Curl利用代码。
            </li>
            <li>
                <div class="help"></div>&nbsp;点击帮助图标以获得<b>描述</b>，示例代码，示例
                针对此漏洞类型的开发、修补程序和相关安全功能。
            </li>
            <li>
                <div class="dataleak"></div>&nbsp;单击数据泄漏图标来检查是否有污染的接收器的输出
                <b>在某处泄漏</b>(通过echo/print嵌入到HTTP响应中)。
            </li>
        </ul>
        <h3>提示:</h3>
        <ul>
            <li>RIPS实现了<i>静态</i>的源代码分析。它只扫描源代码文件，不会执行
                代码。
            </li>
            这个版本不支持面向对象的代码(类)
            <li>确保RIPS对要扫描的文件有文件权限</li>
            <li>不要把rip的网络接口开放给公共互联网。在您的<b>本地</b> web服务器上使用它
                只有。
            </li>
            <li>只在Firefox上测试过</li>
        </ul>
    </div>

</div>


<div>


</div>
</body>
</html>